package locadora.model;

/**
 * Classe que representa um Filme que é um dos tipo de itens para locação
 * @author Leonardo Rocha Dias
 * @author Marccelo Augusto Selvaggio
 * @version 9.11-09
 * @see ItemLocacao
 * @see Item
 * @since 2009
 */
public class Filme extends Item {

    // TODO devo implementar tratamento para não permitir ano zerado ?
    // TODO devo implementar tratamento para não permitir ano anterior a 1900 ?

    // <editor-fold defaultstate="collapsed" desc=" Atributos ">
    private int anoLancamento;
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc=" Construtor ">
    /**
     * Construtor
     * Instancia um objeto de filme com seu respectivo título
     * Usa o construtor da classe pai Item
     * @param titulo do filme
     */
    public Filme(String titulo) {
        super(titulo);
    }

    /**
     * Construtor
     * Instancia um objeto de filme com seu respectivo título e ano de lançamento
     * Usa o construtor da classe pai Item
     * @param titulo do filme
     * @param ano de lançamento do filme
     */
    public Filme(String titulo, int anoLancamento) {
        super(titulo);
        this.anoLancamento = anoLancamento;
    }
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc=" Propriedades ">
    /**
     * Retorna o ano de lançamento de filme
     *
     * @return o ano de lançamento de filme
     */
    public int getAnoLancamento() {
        return anoLancamento;
    }

    /**
     * Define o valor de ano de lançamento de filme
     *
     * @param anoLancamento novo valor de ano de lançamento de filme
     */
    public void setAnoLancamento(int anoLancamento) {
        this.anoLancamento = anoLancamento;
    }

    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc=" Métodos da interface ">
    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Filme) {
            return super.equals(obj);
        } else {
            return false;
        }
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(super.toString());
        String separadorLinha = System.getProperty("line.separator");

        if (this.anoLancamento != 0) {
            sb.append("Ano Lançamento: ");
            sb.append(this.anoLancamento);

            sb.append(separadorLinha);
        }
        
        return sb.toString();
    }
    // </editor-fold>

}
